home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_usrdoc / TIN / MINIMAL-.{_6 < prev    next >
Internet Message Format  |  1999-09-17  |  35KB

  1. From: Jeroen Scheerder <js@xs4all.nl>
  2. Newsgroups: news.software.readers,comp.os.msdos.mail-news,comp.os.os2.mail-news
  3. ,alt.usenet.offline-reader,alt.answers,comp.answers,news.answers
  4. Subject: Minimally Adequate Net-Keeping Seal of Approval (MANKSA) for Usenet So
  5. ftware
  6. Followup-To: news.software.readers
  7. Approved: news-answers-request@MIT.EDU
  8. Summary: Guidelines for writers of Usenet reading and posting programs.
  9.   If you follow these guidelines,  you'll  make your users and the rest
  10.   of the Usenet community much happier.
  11.  
  12. Archive-name: usenet/software/minimal-netkeeping
  13. Posting-Frequency: monthly (first Sunday)
  14. Last-modified: 1997/09/15
  15. Version: 1.1
  16. URL: <http://www.xs4all.nl/%7Ejs/manksa/>
  17. Maintainer: Jeroen Scheerder <js@xs4all.nl>
  18.  
  19. -----BEGIN PGP SIGNED MESSAGE-----
  20.  
  21.       MANKSA * The Minimally Adequate Net-Keeping Seal of Approval
  22.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  23.  
  24. There's a general perception that  Usenet is becoming "noisier" the more
  25. people join  it.  There are  more blank articles, more  mangled headers,
  26. more  "me  too"  responses  accompanying  many  lines  of  quoted  text,
  27. more followup  postings to inappropriate newsgroups,  more misattributed
  28. quotes,  more followups  that really  should have  been e-mail  replies,
  29. more  excessive cross-  and multi-postings,  more unreadibly  encoded or
  30. otherwise maimed articles.
  31.  
  32. This is  often blamed  on the  new users themselves  -- they  are called
  33. "clueless newbies",  unqualified to  participate in Usenet  because they
  34. don't know Unix, or use a misdesigned graphical user interface (GUI), or
  35. use an off-line news reader, or use a commercial service such as America
  36. Online or Delphi.
  37.  
  38. I  believe most  of this  anger is  misdirected.  The  new users  aren't
  39. really that different from the  old-timers.  What _is_ different is that
  40. many  of  the old-timers  are  using  relatively well-behaved  software,
  41. typically  `rn' or  one  of its  offspring, while  many  of the  newbies
  42. are  using `tin',  `uqwk', `AOL',  or  various PC  and Mac  newsreaders.
  43. Unfortunately, these  programs frequently violate assumptions  that come
  44. naturally to people used to well-behaved readers:
  45.  
  46.   - The  user can  see all header  fields, including  "Newsgroups" and
  47.     "Followup-To".
  48.   - The user can edit all header fields when composing a followup.
  49.   - There's a clear difference between `followup' and `reply'.
  50.   - Followups preserve  the Subject  and References  of  the  original
  51.     article, unless the user explicitly changes them.
  52.   - News   software    respects    "Followup-To"     and    "Reply-To"
  53.     specifications.
  54.   - What the user writes is what gets posted, as is.
  55.  
  56. Newer software  should be  an improvement over  an ancient  program like
  57. `rn'.  Instead, much of it is crippled or broken in comparison.
  58.  
  59. The  Usenet community  can  deal  with this  problem  by establishing  a
  60. "Minimally Adequate Net-keeping Seal of Approval" for Usenet reading and
  61. posting software. This  "Seal" would certify that  the software complies
  62. with certain minimal standards, such as those listed below.
  63.  
  64. A  group   of  volunteers  will   test  all  putative   Usenet  software
  65. to   determine  whether   it  qualifies   for  the   "Seal",  with   the
  66. intention  to  periodically  post  a  list of  all  tested  software  to
  67. news.software.readers, alt.usenet.offline-reader,  and other appropriate
  68. newsgroups.   This  periodic  posting   will  list  both  compliant  and
  69. non-compliant news programs; for non-compliant programs, it will include
  70. a list of all  violations of the standards.  The hope  is that this will
  71. encourage the authors of non-compliant  software to bring their programs
  72. up to "Minimally Adequate Net-Keeping Seal" standards, eventually.
  73.  
  74.  
  75.                               --%-@#@-%--
  76.  
  77.  
  78. These are  the proposed standards a  Usenet news program should  meet to
  79. deserve the "Minimally Adequate Net-Keeping Seal":
  80.  
  81.   1)  Display all essential header information
  82.   2)  Provide clear, separate commands for new  posting, followup, and
  83.       e-mail reply
  84.   3)  Provide cross-posting functionality
  85.   4)  Allow users to change essential headers
  86.   5)  Ensure followups and e-mail replies contain a correct Subject
  87.   6)  Direct followups to the correct newsgroups
  88.   7)  Make sure followups contain valid References
  89.   8)  Direct e-mail replies to the correct address
  90.   9)  Allow the user to change her mind about whether to post or mail
  91.   10) Provide adequate quotation and attribution facilities
  92.   11) Provide a user-specified "Subject: " header
  93.   12) Provide a valid "From: " header
  94.   13) Allow users to both cancel and supersede their own articles (and
  95.       _no_ others!)
  96.   14) Try to respect the 80-character line-length convention
  97.   15) Separate signatures correctly, and don't use excessive ones
  98.   16) Try to prevent obvious user errors
  99.   17) Post human-readable articles unless ordered otherwise
  100.   18) Provide self-protection
  101.   19) Be kind to servers, leave room for others
  102.  
  103. These requirements  are described in  more detail below.  In  the spirit
  104. of  RFC 1123  and  Henry  Spencer's "son  of  RFC  1036" proposal,  I've
  105. capitalized  the words  "MUST", "MUST  NOT",  and "DO  NOT" to  indicate
  106. absolute requirements, while using the word "SHOULD" for things that are
  107. merely a Very Good Idea, Really.
  108.  
  109.  
  110.                               --%-@#@-%--
  111.  
  112.  
  113. 1)  Display all essential header information
  114.  
  115. When displaying a news article, it MUST by default show the user certain
  116. information that is found in the article's header.  The information need
  117. not be displayed  as actual RFC-1036 header lines, but  it MUST be shown
  118. to the user in some form.
  119.  
  120.   a) The author of the article (its "From: " header line)
  121.  
  122.   b) The  article's  Subject.   At  least   the  first  70  characters
  123.      following the "Subject: " string MUST be displayed.
  124.  
  125.   c) The list of newsgroups the article was posted to.  This list MUST
  126.      be displayed  in full,  never truncated.  This  list need  not be
  127.      displayed if it has only  one element, provided that the software
  128.      displays the  name of  the newsgroup that  the user  is currently
  129.      reading.
  130.  
  131.   d) The  article's Followup-To  list, if this  is different  from the
  132.      Newsgroups  list.    This  MUST  be  displayed   in  full,  never
  133.      truncated.
  134.  
  135.   e) The article's  Reply-To,  if  this  is  different  from the  From
  136.      specification.
  137.  
  138. If  the required  information does  not fit  fully on  the display,  the
  139. software MAY display only the  initial part of the information, provided
  140. that it offers  the user a scrollbar or equivalent  means of viewing the
  141. remainder.
  142.  
  143. The software  MAY allow the  user to re-configure it  so as to  turn off
  144. these displays, but if  the user has not done this,  all of the required
  145. information MUST be displayed.
  146.  
  147. Rationale: Without having to make any special effort the user should see
  148.            who sent the  article she is reading, how to  reply to it via
  149. e-mail, what discussion groups it was  posted to, and whether the author
  150. of  the message  wants  to narrow  or redirect  the  location of  future
  151. discussion.
  152.  
  153.  
  154. 2)  Provide clear,  separate  commands for  new  posting, followup,  and
  155.     e-mail reply
  156.  
  157. The software MUST provide separate, clearly distinguished commands to do
  158. each of the following:
  159.  
  160.   a) Post a new article, unrelated  to any existing one, whose Subject
  161.      is to be supplied by the user,  and which has an empty or missing
  162.      References: header line.
  163.  
  164.   b) Post a followup article, with Subject, Newsgroups, and References
  165.      header lines derived appropriately from the original article.
  166.                                              (see #5, #6, and #7 below)
  167.  
  168.   c) Reply  by e-mail,  with "Subject: "  and  "To: "  headers derived
  169.      appropriately from the original article.    (see #5 and #8 below)
  170.  
  171. Software  that  uses the  English  language  is strongly  encouraged  to
  172. include the  phrases "Post to  newsgroup", "Followup to  newsgroup", and
  173. "Reply by  e-mail" (or  "Reply to  sender" or "Reply  to author")  -- in
  174. menus, on-line help,  and written documentation.  It  SHOULD avoid using
  175. other verbs such as "Send" or  "Respond" whose meaning is not evident to
  176. the user.  An ordinary, untrained user SHOULD be able to easily pick the
  177. correct command.
  178.  
  179. Rationale: Users  who  post  followups  when  they  should  send  e-mail
  180.            replies, or vice versa, seem  to be an endemic problem.  They
  181. are almost always using software that doesn't make the difference clear,
  182. or doesn't even provide both commands.
  183.  
  184.  
  185. 3)  Provide cross-posting functionality
  186.  
  187. When  creating either  a new  article or  a followup,  the user  MUST be
  188. allowed to specify multiple newsgroups, and the software MUST cross-post
  189. (not multi-post) to them if more than one is specified.
  190.  
  191. Posting software  SHOULD prevent the user  from excessive cross-posting,
  192. or at  least warn  against it.   If posting  to a  very large  number of
  193. groups, the user SHOULD either be  forced or strongly suggested to set a
  194. "Followup-To" header.  Such  a header must be  subjected to restrictions
  195. that are at least as strict as those imposed on "Newsgroups: ".
  196.  
  197. Rationale: Cross-posting  is an  essential  feature of  Usenet.  If  the
  198.            software  cannot cross-post,  then its users  will multi-post
  199. instead.  A reasonable  attempt should be made, however,  to protect the
  200. user against  (usually inadvertent; if not,  often considered net-abuse)
  201. excessive  cross-postings that  will only  lead to  canceling and  flame
  202. warfare.
  203.  
  204.  
  205. 4) Allow users to change essential headers
  206.  
  207. When creating  either a  new article  or a  followup, the  software MUST
  208. allow  the  user  to  edit the  Subject,  Newsgroups,  Followup-To,  and
  209. Reply-To specifications.   The user MUST  be able  to edit these  at any
  210. time  during composition  of the  article; she  MUST NOT  be limited  to
  211. specifying them only before, or after, editing the article's text.
  212.  
  213. The software MUST  allow the user to  specify a new Subject  field of at
  214. least 70 characters, not including the string "Subject: " itself.  It is
  215. better  not  to  impose  any  limit  at  all,  other  than  the  overall
  216. son-of-1036 limit of 998 characters (see #7) per header line.
  217.  
  218. The software MUST allow the user to specify "Followup-To: poster", which
  219. tells readers of the article that the user prefers e-mail replies rather
  220. than followups to the newsgroup.
  221.  
  222. This does not  mean that the software must present  raw RFC-1036 headers
  223. to the user, or that the headers and body must be an indivisible unit of
  224. editable text.  A  graphical user interface that presents  each of these
  225. as an editable field in a form will meet the requirement.
  226.  
  227. Rationale: Topics drift as  a discussion progresses, and  users need the
  228.            ability  to change the  Subject header to reflect  the drift.
  229. Similarly, a user may determine that the discussion no longer belongs in
  230. some of the places that it started, or that its continuation needs to go
  231. elsewhere.   The software  must not  impede the  user's ability  to make
  232. these  judgments,  possibly  during  the  composition  of  her  followup
  233. article.   It's not  acceptable to  have  users who  respond to  "Please
  234. direct followups  appropriately" with "I  can't; the software  won't let
  235. me."
  236.  
  237.  
  238. 5) Ensure followups and e-mail replies contain a correct Subject
  239.  
  240. When creating either a followup article or an e-mail reply, the software
  241. MUST create an initial "Subject: " header which
  242.  
  243.   a) Prepends the four characters "Re: " to the Subject if and only if
  244.      "Re: "  is  not  already  present.  Note  that  this contains  an
  245.      upper-case "R", a  lower-case "e", and a trailing  space.  DO NOT
  246.      prepend non-standard prefixes such as "Re^2: " .
  247.  
  248.   b) Preserves  the *entire* Subject  of the original  article. DO NOT
  249.      chop it  off at 20  or 25 or even  80 characters.  DO  NOT append
  250.      spaces or  any other characters  to the  end.  DO NOT  change the
  251.      case of any character in  the original Subject; in particular, DO
  252.      NOT change the Subject to all-upper-case or all-lower-case.
  253.  
  254.   (The user may later change the Subject, of course; see #4 above.)
  255.  
  256. Exception: The software MAY try to  compensate for other people's broken
  257. software by replacing  non-standard prefixes (such as  "Re^2: ", "Re(2):
  258. ", "Re:"  (no space),  "RE: ", "re: " , or "Re: Re: ")  by  the standard
  259. prefix "Re: ".
  260.  
  261. Rationale: These  things should  be obvious,  but many  authors of  news
  262.            software  don't seem to  understand the relevant  sections of
  263. RFC  1036.  Truncated  "Subject: "  headers, especially  when gratuitous
  264. non-ASCII characters are also thrown in, are a major annoyance for users
  265. and can make threading difficult or impossible.
  266.  
  267.  
  268. 6) Direct followups to the correct newsgroups
  269.  
  270. When creating  a followup article,  the software MUST create  an initial
  271. header  in which  the Newsgroups  field is  initialized to  the original
  272. article's Followup-To, if one was provided, or Newsgroups, if it wasn't.
  273. (The user may later change this field, of course; see #4 above.)
  274.  
  275. If the original article's "Followup-To: " header is set to "poster", the
  276. software MUST warn the user that the original poster requested an e-mail
  277. reply, and generate an e-mail reply by default.
  278.  
  279. Rationale: This  is  basic RFC  1036  compliance.   Software that  fails
  280.            to meet this requirement makes its users look at best foolish
  281. or incompetent,  and at  worst willfully unresponsive  to the  wishes of
  282. other Usenet users.
  283.  
  284.  
  285. 7) Make sure followups contain valid References
  286.  
  287. When  creating a  followup, the  software MUST  create a  "References: "
  288. header line  that contains, as its  last element, the Message-ID  of the
  289. original article.  An individual Message-ID MUST never be truncated.
  290.  
  291. The software SHOULD  include at least three  additional Message-IDs from
  292. the original article's References header as well, if they are available.
  293. Try to stay  as close as possible to the  spirit of "son-of-1036", which
  294. states:
  295.  
  296.         <<Followup agents SHOULD not shorten References  headers.   If
  297.           it  is absolutely necessary to shorten the header, as a des-
  298.           perate last resort, a followup agent MAY do this by deleting
  299.           some  of  the  message IDs.  However, it MUST not delete the
  300.           first message ID, the last three message IDs (including that
  301.           of  the immediate precursor), or any message ID mentioned in
  302.           the body of the followup.>>
  303.  
  304. However, it also says:
  305.  
  306.         <<If  it  is  absolutely  necessary  for  an implementation to
  307.           impose a limit on the length of header lines, body lines, or
  308.           header  logical  lines,  that  limit  shall be at least 1000
  309.           octets, including EOL representations.>>
  310.  
  311. So, keep in mind  that news transports are not guaranteed  to be able to
  312. handle arbitrary long  lines.  Furthermore, keep in mind  that some news
  313. transports choke on continued (multi-line) "References: " headers.
  314.  
  315. Therefore, keep as many Message-IDs as will fit in under 998 characters,
  316. unwrapped.  (An  octet is  a byte  of 8  bits, EOL  representation costs
  317. two.)
  318.  
  319. Exception: Damaged  (truncated)  Message-IDs  SHOULD  NOT  be  included.
  320. Neither should `bogus' Message-IDs --  IDs that somehow got inserted (by
  321. a misguided user, maybe) but don't belong to the thread.
  322.  
  323. Rationale: Threaded news-readers depend on References to do their magic.
  324.            This too is basic RFC compliance.  Be as complete as the line
  325. length limit allows, but do not propagate errors.
  326.  
  327.  
  328. 8) Direct e-mail replies to the correct address
  329.  
  330. When  creating an  e-mail reply,  the  software MUST  create an  initial
  331. header  in which  the  "To: "  header  is  initialized  to the  original
  332. article's Reply-to,  if one was  provided, or  From if it  wasn't.  (The
  333. user may later change this field, of course; see #4 above.)
  334.  
  335. Rationale: See #6 above.
  336.  
  337.  
  338. 9) Allow the user to change her mind about whether to post or mail
  339.  
  340. With any followup or reply message, the software MUST offer the user the
  341. option to  change her  mind about whether  to post or  to mail,  and may
  342. allow doing both.
  343.  
  344. If  the software  has  the option  to  post  as well  as  mail a  single
  345. response, that option  MUST NOT be default behavior,  neither by factory
  346. default nor  by user-configuration.  Furthermore, when  both posting and
  347. mailing a  message, the mailed  message's body  SHOULD be preceded  by a
  348. line  clearly stating  that the  message is  an email  copy of  a usenet
  349. posting.
  350.  
  351. Rationale:   People  digress  when  writing,  and  may  find  themselves
  352. posting  a message  that would  have been  more appropriate  for private
  353. communication,  or  mailing   a  message  that  would   have  been  more
  354. appropriately  directed  to  the  general  audience.   Unsolicited  mail
  355. messages  are highly  unwanted by  many  users (had  they wanted  e-mail
  356. replies, they could, should and, for all a reader can assume would, have
  357. requested them).
  358.  
  359.  
  360. 10) Provide adequate quotation and attribution facilities
  361.  
  362. When the users requests a followup or an e-mail reply, the software MUST
  363. provide some method for including quoted text from the original article.
  364. This  quoted text  MUST be  clearly set  off in  some way  -- either  by
  365. indenting it, or  by prepending each line with one  or more identifiable
  366. characters.  The quote prefix SHOULD start with `>'.
  367.  
  368. Included text SHOULD NOT contain the original article's signature, if it
  369. can --  i.e. if  it can tell  which part is  the signature,  because the
  370. signature  was clearly  separated by  the standard  signature delimiter.
  371. (see also #15 below).
  372.  
  373. If this is a  followup (as opposed to an e-mail  reply), the quoted text
  374. MUST be preceded by an "attribution  line" identifying the author of the
  375. text that  is being quoted,  and preferably  also the Message-ID  of the
  376. article  containing that  text.  (The  user  may decide  to delete  this
  377. attribution  line or  to configure  it  away, but  it MUST  be there  by
  378. default.)
  379.  
  380. Rationale: The ability to  easily quote text is essential  for users who
  381.             want to  provide a  proper context  for their  followups and
  382. e-mail  replies.   Software  that  provides  attribution  lines  without
  383. quoting  ability, or  that fails  to distinctively  set off  quoted text
  384. from  original  text,  is  a  major   cause  of  "I  didn't  say  that!"
  385. misunderstandings.  By convention, quoted lines start with `>', and much
  386. software depends  on this do  distinguish quoted material  from original
  387. lines, for presentation purposes.
  388.  
  389.  
  390. 11) Provide a user-specified "Subject: " header
  391.  
  392. When  creating a  new article,  the software  MUST require  the user  to
  393. provide a  non-empty Subject.   It MUST  NOT post  an article  without a
  394. "Subject: "  header or with  an empty "Subject: "  header.  It  MUST NOT
  395. silently  add a  default Subject  (like "Subject: <None>")  if the  user
  396. didn't specify one.  It MUST allow the user to change the Subject at any
  397. time while editing the main text of the article (see #4 above).
  398.  
  399. Rationale: An  article without a  Subject provides no clues for deciding
  400.            to read it or not.  For that reason, it's likely to be widely
  401. ignored, and  it's no service  to the user to  allow posting of  such an
  402. article; while other readers may read  it, only to find out they needn't
  403. have bothered when it annoyingly turns out to be of no interest.
  404.  
  405.  
  406. 12) Provide a valid "From: " header
  407.  
  408. When creating  either a  new article  or a  followup, the  software MUST
  409. initialize the "From: " header  to a syntactically valid e-mail address,
  410. which includes a fully-qualified domain name (FQDN).
  411.  
  412. This requirement must be met regardless of whether the software
  413.  
  414.   (a) creates the "From: " header when it first creates the article to
  415.       be edited by the user, or
  416.  
  417.   (b) adds the  "From: " header automatically after  the user finishes
  418.       editing the article and requests that it be submitted.
  419.  
  420. If the software allows  the user to edit the "From: "  header, it SHOULD
  421. check that the user supplied a syntactically valid address.
  422.  
  423. If the software is unable to create  such an address -- maybe because it
  424. was  built with  incorrect configuration  parameters, or  some essential
  425. parameter is unavailable at runtime -- then it MUST NOT allow posting at
  426. all, unless it can obtain a  syntactically valid e-mail address from the
  427. user.
  428.  
  429. If  feasible, the  software SHOULD  try to  guarantee that  this address
  430. actually belongs to the person  using the software, and actually accepts
  431. e-mail.
  432.  
  433. Rationale: Mail  and news  transport systems  and user  agents, gateways
  434.            and  processing software may choke  on syntactically  invalid
  435. headers.  Invalid  e-mail addresses make e-mail  replies impossible; see
  436. Greg  Byshank's "Help! I've  been  spammed!" document  for an  excellent
  437. discussion of the issues involved.
  438.  
  439.  
  440. 13) Allow  users to both  cancel and  supersede their own  articles (and
  441.     _no_ others!)
  442.  
  443. Any software that posts news SHOULD  provide a command that the user can
  444. invoke to cancel her own articles.  It SHOULD also provide the option to
  445. supersede  own articles.   The  software MUST  guarantee  that the  user
  446. cannot cancel or supersede other people's articles, as far as possible.
  447.  
  448. Caveat: since completely reliable  authentication can be infeasible, the
  449.         best  the software  can do  is to  make a  good-faith effort  to
  450.         determine  whether or  not cancelling  or superseding  is valid:
  451.         i.e. by  trusting upon  its user  configuration and  checking it
  452.         against the relevant header(s) in the target article.
  453.  
  454. If  the software  uses  the English  language, the  text  of the  cancel
  455. command SHOULD include the word "cancel", rather than non-standard verbs
  456. such  as "delete".   Similarly, in  English  software, the  text of  the
  457. supersede command SHOULD include the word "supersede".
  458.  
  459. Rationale: People  make  mistakes and  need  the  ability to  revoke  or
  460.            correct  them; both `cancel'  and `supersede' exist  for good
  461. reasons.  However, software should not encourage users to abuse the net,
  462. either intentionally or accidentally,  by sending unauthorized (`rogue')
  463. cancels or supersedes.  The supersede option is essential: due (a.o.) to
  464. sometimes  unpredictable usenet  propagation, a  "cancel-cum-repost" may
  465. behave very different from a  "supersede".  News servers might also have
  466. different acceptance policies for both.
  467.  
  468.  
  469. 14) Try to respect the 80-character line-length convention
  470.  
  471. Any  line breaks  shown to  the user  while she  is editing  her article
  472. SHOULD still be present when the  article is actually posted to the Net.
  473. The  software SHOULD  NOT show  the user  four 75-character  lines while
  474. actually posting  a single 300-character  line.  Nor should it  show the
  475. user a series of 100-character  lines while actually posting alternating
  476. lines of 80 and 20 characters each.
  477.  
  478. It's also a  good idea to warn the  user if the article she  is about to
  479. post contains non-header lines longer  than 80 characters.  The software
  480. SHOULD NOT prevent the posting, but SHOULD ask whether the user wants to
  481. re-edit or post anyway.
  482.  
  483. Caveat: Occasionally, there are very good  reasons for posing long lines
  484.         (for  example, when  posting  a source  code snippet  containing
  485.         something that will  break when wrapped, or when  there's a need
  486.         to  post  something  "as  is", unreformatted  --  unaltered  and
  487.         completely intact).   For that  reason (re)wrapping cannot  be a
  488.         MUST: a SHOULD is all it can be.
  489.  
  490. To  get well-readable  articles, the  user SHOULD  be provided  with the
  491. possibility to rewrap excessively long  lines of quoted text, respecting
  492. quotation -- i.e. have the option to correct `inherited' bad formatting.
  493. Also, tabs SHOULD be expanded to prevent the so-called `tab damage' that
  494. may occur when someone reading your article uses a different tab size.
  495.  
  496. Caveat: Due  to  the immense  variety  in  quoting styles,  quoted  text
  497.         reformatting can be extremely hard, practically impossible even.
  498.         No  software can  be expected  to deal  with everything;  still,
  499.         since the overwhelming majority  can be dealt relatively easily,
  500.         it is not  unreasonable to expect it from software,  if it is to
  501.         be well-equipped for the task of editing Usenet articles.
  502.  
  503. If the news software uses an  external editor, the default editor SHOULD
  504. conform to the above.
  505.  
  506. Rationale: Articles  with  long  lines  are unreadable  to  many  users.
  507.            Articles with alternating 80/20 lines aren't any better.
  508.  
  509.  
  510. 15) Separate signatures correctly, and don't use excessive ones
  511.  
  512. Posting  software  SHOULD separate  any signature  appended to  outgoing
  513. articles from  the main text  with a line  containing only `-- '  ("dash
  514. dash space"). To quote son-of-rfc1036:
  515.  
  516.         <<If  a  poster or posting agent does append a signature to an
  517.           article, the signature SHOULD be preceded with  a  delimiter
  518.           line  containing  (only)  two hyphens (ASCII 45) followed by
  519.           one blank (ASCII  32).   Posting  agents  SHOULD  limit  the
  520.           length  of  signatures,  since  verbose  excess bordering on
  521.           abuse is common if no restraint is imposed;  4  lines  is  a
  522.           common limit.>>
  523.  
  524. Hence, posting  software MUST  prevent the  user from  using excessively
  525. long  signatures, or  at  least  warn the  user  against  it.  A  widely
  526. accepted standard is the so-called McQuary limit: up to 4 lines, each up
  527. to a maximum of 80 characters.
  528.  
  529. Rationale: Being confronted with  (possibly excessively long) signatures
  530.            repetitively is, or can be,  annoying to many.  Being able to
  531. separate the main text and the  signature clearly is important, not only
  532. to prevent the possible mistake of misinterpreting a signature, but also
  533. to enable automatic signature suppression for those who wish to do so.
  534.  
  535.  
  536. 16) Try to prevent obvious user errors
  537.  
  538. * Posting  software MUST warn the  user for posting empty  articles, and
  539.   SHOULD prevent doing so entirely.
  540.  
  541. * Posting software MUST warn  the user about posting articles consisting
  542.   entirely of quoted text, and SHOULD prevent doing so entirely.
  543.  
  544. * Posting software  MUST warn the user severely when  attempting to post
  545.   an article  over and over  again, and SHOULD  do everything it  can to
  546.   prevent doing so entirely.
  547.  
  548.   - When posting  `asynchronously'  (i.e.  when sacrificing  knowledge
  549.     about  progress,  success or  failure  by  handing over  the  task
  550.     completely to some separate process)  it SHOULD NOT allow the user
  551.     to  post articles  again, once  the user  issued the  final "post"
  552.     command.
  553.  
  554.   - When  posting `synchronously', the  software has at  least partial
  555.     knowledge  about progress,  and  full knowledge  about success  or
  556.     failure of an attempt to post.  In this case, it SHOULD inform the
  557.     user clearly that the article  is being posted while attempting to
  558.     post it; after the attempt,  it MUST unequivocally inform the user
  559.     that posting succeeded if it did, and that it failed otherwise.
  560.  
  561. Note: So-called  `online'  newsreaders  usually  (but  not  necessarily)
  562.       post synchronously, while a number so-called `offline' newsreading
  563.       methods  (especially the  scheduled, batch-oriented  ones) usually
  564.       employ asynchronous  posting.  However, offline  newsreaders using
  565.       NNTP for  news transport usually  post synchronously, i.e.  are in
  566.       direct  interaction  with  the  newsserver,  hence  get  immediate
  567.       results, when posting.
  568.  
  569. Rationale: Users who  do any  of these  things almost  never do  them on
  570.            purpose.   They  are   usually  confused  by  unfamiliar  new
  571. software, and should be offered basic protection.
  572.  
  573.  
  574. 17) Post human-readable articles unless ordered otherwise
  575.  
  576. Posting software MUST by default  post only legible usenet articles.  In
  577. a different formulation: it MUST  NOT encode or encrypt articles, unless
  578. by explicit  user demand.  Hence,  it MUST NOT  even have the  option to
  579. encode or encrypt by default.  Whenever some encoding/encryption will be
  580. used, clear feedback showing that it's in effect MUST be provided to the
  581. user, so she  is permanently reminded of the fact  that her article will
  582. not  be posted  as composed.   The worst  DO NOT  is the  combination of
  583. allowing default  encoding without  even taking  the trouble  of telling
  584. (warning) the user about it.
  585.  
  586. Note: Common occurrences  of this kind  of content maiming  unasked for,
  587.       and  untold   to,  the  user,   are  HTML-  and   MIME  multi-part
  588.       and/or  base64 encodings,  as found  in newsreaders  integrated in
  589.       WWW-browsers better not mentioned.
  590.  
  591. Rationale: Many users  may not be  able to read (particular)  encoded or
  592.            encrypted  articles  at  all,  or  only  at  the  expense  of
  593. a  considerable  effort:  such  articles   ask  to  be  widely  ignored.
  594. Encouraging posting  maimed messages  is a service  neither to  the user
  595. herself, nor  to her audience.   Keep in  mind that not  everyone shares
  596. your particular setup (newsreader, configuration, operating system), nor
  597. should (and can) anyone be forced to do  so, in order to be able to read
  598. your articles.
  599.  
  600.  
  601. 18) Provide self-protection
  602.  
  603. News  readers SHOULD  allow the  user  to protect  herself by  filtering
  604. out  articles  she  really  does  not want  to  read.   These  filtering
  605. facilities SHOULD  be sufficiently powerful to  enable ignoring postings
  606. by  particular  persons,  about   particular  subjects,  and  particular
  607. cross-posts.
  608.  
  609. Rationale: While it  looks as if  not having filtering only  affects the
  610.            user herself, people  tend to take it out on  the net if they
  611. are  repetitively  (structurally)  annoyed  by  a  particular  class  of
  612. postings,  and will  be inclined  to start  canceling, advocate  posting
  613. restriction or engage in flame warfare, all of which is harmful to other
  614. users.
  615.  
  616.  
  617. 19) Be kind to servers, leave room for others
  618.  
  619. Reading  or posting  software MUST  NOT  put excessive  demands on  news
  620. server unnecessarily.  Spurious connects and unnecessary traffic MUST be
  621. avoided.
  622.  
  623. Rationale: News  systems  are  big,  resources  are  scarce,  and  every
  624.            resource claimed is provided at the expense of other users.
  625.  
  626.  
  627.                               --%-@#@-%--
  628.  
  629.  
  630. Please remember that this is a  set of _minimum_ guidelines to guarantee
  631. that a given  piece of software interacts properly with  the rest of the
  632. Usenet world.   It is not a  general "wish list" of  everyone's favorite
  633. features.   I have  deliberately avoided  taking a  position on  certain
  634. controversial issues -- for example,  whether the user should be allowed
  635. to edit  the "Sender: "  header, whether  news software  should prohibit
  636. posting an article  that has more quoted text than  new text, or whether
  637. posting with certain particular Subjects should be prohibited.
  638.  
  639.  
  640. My hope is  that a voluntary committee can be  formed, respected by many
  641. people on the  Net, that reviews Usenet software and  decides whether it
  642. deserves the "Minimally Adequate  Net-Keeping Seal of Approval."  People
  643. who  use broken  software that  does not  have the  Seal should  then be
  644. strongly encouraged to switch to software that does.
  645.  
  646.  
  647. References and additional reading
  648. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  649.  
  650. MANKSA, an evaluation form and an archive of software evaluations can be
  651. found at:
  652.  
  653.   <http://www.xs4all.nl/%7Ejs/manksa/>
  654.   <http://http.bsd.uchicago.edu/%7Etwpierce/news/> (GNKSA)
  655.  
  656. The MANKSA  page also contains  a pointer  to a library  that newsreader
  657. developers can freely make use of, providing basic `sanitary' functions.
  658.  
  659. In  addition to  the Seal,  anyone  writing Usenet  software should  pay
  660. careful attention to the following documents:
  661.  
  662.   RFC 977, "Network News Transfer  Protocol -- A Proposed Standard for
  663.   the Stream-Based  Transmission of  News", by  Brian Kantor  and Phil
  664.   Lapsley.
  665.         <ftp://ftp.internic.net/rfc/rfc977.txt>
  666.  
  667.   RFC  1036,  "Standard  for   Interchange  of  USENET  Messages",  by
  668.   M. Horton and R. Adams.
  669.         <ftp://ftp.internic.net/rfc/rfc1036.txt>
  670.  
  671.   The proposed "Son of 1036",  "News Article Format and Transmission",
  672.   by Henry Spencer.
  673.         <ftp://ftp.zoo.toronto.edu/pub/news.txt.Z>    (also news.ps.Z)
  674.  
  675.   "The UseFor  Working Group Documents" (under  development:  Internet
  676.   Drafts describing  the minimal standards  for a Usenet  article, and
  677.   the  minimum features  all  Usenet  software should  have), by Simon
  678.   Lyall (et al.).
  679.         <http://www.landfield.com/usefor/>
  680.  
  681.   "Read This Before You Write a Newsreader, News Transport
  682.   System, etc.", by Tom Limoncelli.
  683.         <http://http.bsd.uchicago.edu/%7Etwpierce/news/newsreader-manifesto.htm
  684. l>
  685.  
  686.   "The  "Good  Net-Keeping  Seal  of Approval",  by  Ron  Newman;  the
  687.   document this document leans heavily upon.
  688.         <http://www2.thecia.net/users/rnewman/Good-Netkeeping-Seal>
  689.  
  690. Excellent collections of  things well worth reading in  this context can
  691. be found at:
  692.  
  693.   "News Hacking", by Tim Pierce.
  694.         <http://http.bsd.uchicago.edu/%7Etwpierce/news/>
  695.  
  696.   "Notes on News", by Lars Magne Ingebrigtsen.
  697.         <http://www.ifi.uio.no/%7Elarsi/notes/notes.html>
  698.  
  699. A very informative  overview of the issues concerning some  forms of net
  700. abuse, and how and how not to deal with it, is:
  701.  
  702.   "Help! I've been Spammed! What do I  do?", by Greg Byshenk, based in
  703.   part on an  original by Chris Lewis, Posted  weekly to news.answers,
  704.   news.newusers.questions, and news.admin.net-abuse.misc.
  705.         <http://www.tezcat.com/%7Egbyshenk/ive.been.spammed.html>
  706.   The  part  that explicitly  deals  with  the  issues of  messing  up
  707.   "From: "-headers is:
  708.         <http://www.tezcat.com/%7Egbyshenk/ive.been.spammed.html#2.3>
  709.  
  710. Of related  interest --  if you're  willing to  contribute, or  are just
  711. interested in  the way things are  developing -- could also  be the IETF
  712. NNTP  Working Group's  "attempt to  revise NNTP  and bring  it into  the
  713. 1990s".
  714.         <http://www.academ.com/academ/nntp/ietf.html>
  715.  
  716.  
  717. Acknowledgements
  718. ~~~~~~~~~~~~~~~~
  719.  
  720. Simon Lyall c.s.,  for the praiseworthy UseFor  (Usenet Article Standard
  721. Update) Working Group initiative (and its derivatives).
  722.  
  723. Ron Newman <rnewman@theCIA.net>, of course, for writing the GNKSA.
  724.  
  725. Sven  Guckes  <guckes@math.fu-berlin.de>   for  providing  mailing  list
  726. resources (among other things).
  727.  
  728. Tim  Pierce <twpierce@midway.uchicago.edu>  for scrutinous  examination,
  729. useful hints, and previous GNKSA support.
  730.  
  731. Larry  Wall  <lwall@netlabs.com>,  Stefan  Kurth  <stk@berlin.snafu.de>,
  732. John     E. Davis     <davis@space.mit.edu>,     Karl-Johan     Johnsson
  733. <su95-kjo@nada.kth.se> for  showing inspiring examples of  the spirit of
  734. good net keeping in the form of well-designed usenet reading programs.
  735.  
  736. -----BEGIN PGP SIGNATURE-----
  737. Version: 2.6.3i
  738. Charset: noconv
  739.  
  740. iQCVAwUBNB1EGShIY6bIQPMpAQF1YgQAxS4h4hB3ktaK1P/q7xy7gIt8bfMRgqnz
  741. mMacLRt2wgpjwLKTmmMbe18wFhfi1H3tUHG1Y5B6q9y2D6ZBf4UYXoqqq4EHOz5g
  742. 8zg1SWm0IOt9v3whwf+8e2wV36Bq9JZLSAyy0/s5EIsg4bdVfgKKPYXnXdJVWzoN
  743. u34pu/AkfYU=
  744. =Hw3R
  745. -----END PGP SIGNATURE-----
  746.  
  747.